/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package interfaces;

/**
 *
 * @author Emanuel
 */
public interface Correctora {


    /**
     * Nib da conta
     * @param codCartao
     * @return
     */
    public String getNibConta(Integer codCartao);

    /**
     * Ao fazer o pedido do saldo, verifica se o cartao multibanco está valido,
     * se não estiver devolve um string vazia
     * @return
     */
    public long getSaldoDisponivelConta(Integer codCartao);

    /**
     * Ao fazer o pedido do saldo, verifica se o cartao multibanco está valido,
     * se não estiver devolve um string vazia
     * @return
     */
    public long getSaldoContabilisticoConta(Integer codCartao);

    /**
     * retorno dos movimentos da conta, ultimos 20, formato CSV ";\n"
     * @return
     */
    public String getMovimentosConta(Integer codCartao);


    /**
     * Metodo para verificar se a conta destino inserida pelo utilizador
     * no Multibanco
     * @param nib
     * @return
     */
    public boolean verifiSeExisteContaDestino(String nib);

    /**
     * Metodo para descontar o saldo imediatamente na conta de origem
     * @param valor
     */
    public void descontoTransferenciaDinheiroDeTransferenciaOnline(long valorDescontar, String nibOrigem, String nibdestino);

    /**
     * Metodo para adicionar o valor na conta destino
     * @param valor
     */
    public void adicionaTransferenciaDinheiroDeTransferenciaOnline(long valorAcrescentar, String nibOrigem, String nibDestino);

    /**
     * Caso o cliente deseje receber um email com o comprvativo com os dados
     * da operação efectuada
     * @param nibOrigem
     * @return
     */
    public String getEmailCliente(String nibOrigem);

    /**
     * Temos que vos enviar os movimentos de pagamentos de serviços
     * para a conta que o utilizador está a usar. Formato é o seguint, se der jeito
     * dia;entidade;montante
     * Devolve "sim" se foi adicionado com sucesso
     */
    public String GuardarMovimentoDePagamentoDeServicos(String pagamentoServico, int codCartao);
}
